协方差 - 快速入门

By Ruben Geert van den Berg under 因子分析 & 统计学A-Z

  • 什么是协方差?
  • 协方差还是相关系数?
  • 样本协方差公式
  • 协方差计算示例
  • 用于计算协方差的软件

什么是协方差?

协方差(Covariance)本质上是一个未标准化的相关系数(correlation)。也就是说,协方差是一个数字,它表明两个变量在多大程度上是线性相关的。与 (Pearson) 相关系数(Pearson correlation coefficient) 相比,协方差取决于所涉及的两个变量的尺度,以它们的标准差表示。

下图以散点图的形式可视化了一些相关系数和协方差。

散点图中的协方差

x1 和 y1 基本不相关。协方差和相关系数都接近于零; x2 和 y2 关系密切,但根本不是线性的。协方差和相关系数均为零。 x3 和 y3 呈负相关。协方差和相关系数均为负; x4 和 y4 呈正相关。协方差和相关系数均为正; x5 和 y5 呈强正相关。因为它们与 x4 和 y4 具有相同的标准差,所以相关系数和协方差都会增加; x6 和 y6 与 x5 和 y5 相同,只是它们的标准差为 1.0 而不是 2.0。这使协方差缩小了 4.0 倍,但不影响相关系数。

比较图强调协方差与尺度有关,而相关系数则无关。这可能会让您想知道,为什么我总是计算协方差而不是相关系数?

协方差还是相关系数?

首先,协方差和相关系数之间的精确关系由下式给出:

\[S_{xy} = r_{xy} \cdot s_x \cdot s_y\]

其中

  • \(S_{xy}\) 表示变量 \(X\) 和 \(Y\) 之间的(样本)协方差;
  • \(r_{xy}\) 表示 \(X\) 和 \(Y\) 之间的 (Pearson) 相关系数;
  • \(s_x\) 和 \(s_y\) 表示 \(X\) 和 \(Y\) 的(样本)标准差。

此公式表明,协方差可以看作是由所涉及的 2 个变量的标准差的乘积“加权”的相关系数:在其他条件相同的情况下,较大的标准差会导致较大的协方差。

对于比较变量对之间的关联,此功能可能是可取的。只有在所有变量都以相同的尺度测量时,例如美元、秒或千克,这才有意义。一些需要协方差的分析如下:

  1. Cronbach’s alpha 通常是根据协方差而不是相关系数计算的。这是因为尺度得分是根据未标准化变量的总和或平均值计算的。因此,具有较大标准差的变量对尺度得分的影响更大。这就是为什么此类变量之间的关联在 Cronbach’s alpha 的计算中也具有更大的权重。

  2. 因子分析 中,有时会分析协方差矩阵而不是相关矩阵。如果是这样,则变量之间的关联对因子解的影响更大,因为这些变量具有更大的标准差。

  3. 一些分析需要满足亚群体的等协方差矩阵的假设。一个示例是 MANOVA,其中 Box 检验(基本上是 Levene’s 检验 的多元扩展)通常用于检验此假设。

  4. 有点令人惊讶的是,ANCOVA - 意思是 an alysis of cova riance - 不涉及计算协方差。

所以这些是一些涉及协方差的分析。那么这些是如何计算的呢?好吧,要使用哪个公式取决于您要分析哪种类型的数据。

样本协方差公式

如果您的数据包含来自更大群体的样本(通常是这种情况),则样本协方差的计算公式为

\[S_{xy} = \frac{\sum\limits_{i = 1}^N(X_i - \overline{X})(Y_i - \overline{Y})}{N - 1}\]

其中

  • \(S_{xy}\) 表示变量 \(X\) 和 \(Y\) 之间的(样本)协方差;
  • \(\) 和 \(\) 表示 \(X\) 和 \(Y\) 的样本均值;
  • \(N\) 表示总样本大小。

现在让我们通过在计算示例中使用此公式来掌握它。

协方差计算示例

下表包含 10 个婴儿在出生时 (X) 和 12 个月大时 (Y) 的体重(以克为单位)。X 和 Y 之间的协方差是多少?

ID 1 2 3 4 5 6 7 8 9 10
X 3777 3279 3760 3579 4138 3067 3438 4059 4493 3517
Y 8695 7844 9532 8807 9537 7073 8873 11465 11837 8604

首先,

  • 样本大小为 \(N\) = 10,平均值为
  • \(\) = 3711 且
  • \(\) = 9227。

因此,

\[S_{xy} = \frac{(3777 - 3711)\cdot(8695 - 9227)\;+\;...\;+\;(3517 - 3711)\cdot(8604 - 9227)}{10 - 1}\]

\[S_{xy} = \frac{66 \cdot -532\;+\;...\;+\;-194 \cdot -623}{10 - 1}\]

\[S_{xy} = \frac{5189622}{10 - 1} = 576625\]

您可以在 此 Googlesheet 中查找整个计算过程,如下面部分所示。

在 Googlesheets 中计算协方差

总体协方差公式

如果您的数据包含您想要研究的整个总体,您可以将协方差计算为

\[\sigma_{xy} = \frac{\sum\limits_{i = 1}^N(X_i - \mu_x)(Y_i - \mu_Y)}{N}\]

其中

  • \(_{xy}\) 表示变量 \(X\) 和 \(Y\) 之间的(总体)协方差;
  • \(_x\) 和 \(_y\) 表示 \(X\) 和 \(Y\) 的总体均值;
  • \(N\) 表示总体大小。

用于计算协方差的软件

样本和总体协方差都可以轻松地在 Googlesheets 和 Excel 中计算。此 Googlesheet (如下面部分所示)包含几个示例。

Googlesheets 中的协方差公式

可以很容易地从 SPSS 中获得几个变量的完整协方差矩阵。但是,SPSS 中的“协方差(covariance)”始终是指样本协方差,因为 SPSS 完全没有总体协方差。对于一个“统计软件包(statistical package)”来说,这非常糟糕。但无论如何:唯一的基于菜单的选项是 A nalyze SPSS 菜单箭头 C orrelate SPSS 菜单箭头 B ivariate,如下图所示。

SPSS 相关性选项对话框中的协方差

但是,一个更好的选择是使用 SPSS 语法,就像我们在 SPSS 中的 Cronbach’s Alpha 中所做的那样。这更快,并且可以生成一个更好的表格布局,如下所示。

来自 SPSS 的协方差矩阵

这里需要注意两点:

就像相关矩阵一样,协方差矩阵是对称的:X 和 Y 之间的协方差显然等于 Y 和 X 之间的协方差。

主对角线包含每个变量与其自身的协方差。这些只是我们变量的方差(标准差的平方)。最后一点意味着我们可以从协方差矩阵计算相关矩阵,但不能反过来。例如,我们前 2 个变量之间的相关性为

\[r_{xy} = \frac{576625}{\sqrt{183629} \cdot \sqrt{2170571}} = 0.913\]